import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

//JDBC查询操作
public class JDBCPracticeSelect {
    public static void main(String[] args) throws SQLException {
        Scanner scanner = new Scanner(System.in);
        //1.创建一个数据源
        DataSource dataSource = new MysqlDataSource();//就是描述数据库服务器在哪里
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java107_2?characterEncoding=utf8&useSSL=false");//上边是用一个接口引用的，下边这个方法是子类特有的，所以要进行向下转型
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("12345");
        //2.建立与数据库服务器的连接
        Connection connection = dataSource.getConnection();
        //3.录入用户的信息
        System.out.println("请输入姓名：");
        String name = scanner.nextLine();
        //4.构造sql语句  //进行预编译
        String sql = "select * from student where name = ?";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setString(1,name);
        //5.执行sql语句
        ResultSet resultSet = statement.executeQuery();//查询语句返回的是一张类似表格的东西
        //6.遍历这张表格
        while (resultSet.next()) {
            //resultSet就是一张表格，同时有一个光标指向表格的最上方，当调用next时，这个光标就
            //往下走一行
            int id = resultSet.getInt("id");//参数时列的名称/是列在当前数据库表格的下标
            String name1 = resultSet.getString("name");
            System.out.println("id = " + id + ", name = " + name1);
        }
        //7.释放资源
        statement.close();
        connection.close();
    }
}
